package com.wlr.study.order;

/**
 * 选择排序
 * 首先在未排序的序列中找到最小（大）元素，存放在排序序列的起始位置
 * 然后从剩余未排序的元素中继续寻找最小（大）元素，放到已排序的末尾
 *
 * @author lrwang
 * @version 1.0
 * @date 2022/3/17 0:04
 */
public class SelectionSort {
    public static int[] selectionSort(int[] array) {
        if (array.length == 0) {
            return array;
        }
        for (int i = 0; i < array.length; i++) {
            int minIndex = i;
            for (int j = i; j < array.length; j++) {
                if (array[j] < array[minIndex]) {
                    minIndex = j;
                }
            }
            int temp = array[minIndex];
            array[minIndex] = array[i];
            array[i] = temp;
        }
        return array;
    }
    public static void main(String[] args) {
        int[] nums = new int[]{5, 2, 6, 4, 8, 3, 1, 7};
        int[] ints = SelectionSort.selectionSort(nums);
        for (int a : ints) {
            System.out.println(a);
        }
    }
}
